package kits

import "regexp"

type regexTool struct{}

var Regex regexTool

// 规则
const (
	// 手机号
	regxpMobile = "^1[3|4|5|6|7|8|9][0-9]\\d{8}$"
	// 车牌号
	regxpCarno = "^(([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z](([0-9]{5}[ABCDEFGHJK])|([ABCDEFGHJK]([A-HJ-NP-Z0-9])[0-9]{4})))|([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领]\\d{3}\\d{1,3}[领])|([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳使领]))$"
)

// 正则解释器
var (
	regxpMobilePattern = regexp.MustCompile(regxpMobile)
	regxpCarnoPattern  = regexp.MustCompile(regxpCarno)
)

// ValidMobile 校验手机号
func (rt *regexTool) ValidMobile(mob string) bool {
	return regxpMobilePattern.MatchString(mob)
}

// ValidCarno 校验车牌号
func (rt *regexTool) ValidCarno(cno string) bool {
	return regxpCarnoPattern.MatchString(cno)
}
